<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>javaScript函数</title>
</head>
<body>
     <!-- <p><input id="num" type="text"/></p>
     <p><input id="num1" type="text"/></p>
     <p>
         <input type="button" value="相加" onclick="calc(add)"/>
         <input type="button" value="相减" onclick="calc(sub)"/>
         <input type="button" value="相乘" onclick="calc(mul)"/>
         <input type="button" value="相除" onclick="calc(div)"/>
    </p>
    <!-在输入框只读模式,readonly-->
    <!-- <p>计算结果:<input id="result" type="text"  readonly></p> -->
</body>
<script>
    // function calc(func){
    //     //将输入的值进行数据类型转换
    //     var num =parseInt( document.getElementById("num").value); //获取第一个输入框输入的值
    //     var num1=parseInt(document.getElementById("num1").value); //获取第二个输入框输入的值
    //     var result =document.getElementById("result"); //获取结果框对象
    //     if(isNaN(num)||isNaN(num1)){ //判断当前输入的值是否为数值
    //         alert("请输入数字"); //如果不是弹出提示,并终止当前代码
    //         return false;
    //     }
    //     result.value=func(num,num1); //根据按钮点击后传递过来的值判断当前执行的方法,再将两个输入框的值进行操作
    // }

    // function add(num,num1){  //相加
    //     return num+num1;
    // }

    // function sub(num,num1){ //相减
    //     return num-num1;
    // }

    // function num1(num,num1){ //相乘
    //     return num*num1;
    // }

    // function div(num,num1){  //相除
    //     if(num1==0){
    //         alert("除数不能为0");
    //         return " ";
    //     }
    //     return num/num1;
    // } 




        //对于数组中的每个元素都按照顺序调用一次回调函数
        // var arr=["a","b","c"];
        // arr.map(function(value,index){
        //     console.log(value,index);
        // });
        // //对于二维数组使用map()进行转置
        // var arr1=[[1,2,3],[4,5,6],[7,8,9]]; //定义数组
        // var reverse=arr1[2].map(function(col,i){ //通过i来获取转置后数组的元素
        //     return arr1.map(function(row){ //返回转置后新数组成的数组元素
        //        return row[i]; 
        //     });
        // });
        // console.log(reverse);

    //     //利用递归计算阶乘 要求可以输入计算阶乘n的值 计算阶乘的公式:1*2*3*....*(n-1)     n!=n × (n-1)
       
    //    function factorial(n){
    //        if(n==1){
    //            return 1;
    //        }
    //        return n*factorial(n-1);
    //    }
       
    //     var n = prompt("请输入求N的阶乘 N大于等于1的正整数");
    //     n=parseInt(n); //判断是否输入的为整数
    //     if(n!=0){
    //     if(isNaN(n)){
    //         console.log("请输入合法的n值");
    //     }else{
    //         //执行递归操作，计算n的阶乘
    //         console.write(n+"的阶乘为:"+factorial(n));

    //     }
    //     }else{
    //         console.log("请输入合法n值");
    //     }


        //闭包函数
        function fn(){
            var times=0;
            var c =function(){
                return ++ times;
            };
            return c;
        }
        var count =fn(); //保存fn()返回的函数，此时count就是一个闭包
        //访问测试
        console.log(count());
        console.log(count());
        console.log(count());
        console.log(count());
        console.log(count());
        
    </script>
</html>